Ký hiệu thay thế và các dạng PID Bộ_điều_khiển_PID

Dạng PID lý tưởng và tiêu chuẩn

Bộ điều khiển PID là bộ điều khiển xuất hiện nhiều nhất trong công nghiệp, và bộ điều khiển thích hợp nhất để điều chỉnh thuật toán là dạng chuẩn. Trong dạng này, độ lợi K p {\displaystyle K_{p}} được dùng trong khâu I o u t {\displaystyle I_{\mathrm {out} }} , và D o u t {\displaystyle D_{\mathrm {out} }} ,đạt được::

M V ( t ) = K p ( e ( t ) + 1 T i ∫ 0 t e ( τ ) d τ + T d d d t e ( t ) ) {\displaystyle \mathrm {MV(t)} =K_{p}\left(\,{e(t)}+{\frac {1}{T_{i}}}\int _{0}^{t}{e(\tau )}\,{d\tau }+T_{d}{\frac {d}{dt}}e(t)\right)}

trong đó

T i {\displaystyle T_{i}} là thời gian tích phân T d {\displaystyle T_{d}} là thời gian vi phân

Trong dạng song song lý tưởng, được trình bày trong phần lý thuyết bộ điều khiển

M V ( t ) = K p e ( t ) + K i ∫ 0 t e ( τ ) d τ + K d d d t e ( t ) {\displaystyle \mathrm {MV(t)} =K_{p}{e(t)}+K_{i}\int _{0}^{t}{e(\tau )}\,{d\tau }+K_{d}{\frac {d}{dt}}e(t)}

các thông số độ lợi được liên kết tới dạng chuẩn thông qua K i = K p T i {\displaystyle K_{i}={\frac {K_{p}}{T_{i}}}} và K d = K p T d {\displaystyle K_{d}=K_{p}T_{d}\,} . Dạng song song này, trong đó các thông số được xử lý như là các độ lợi đơn giản, là dạng tổng quá và linh hoạt nhất. Tuy nhiên, nó cũng là dạng mà các thông số có sự liên quan vật lý ít nhất và thường được dành riêng cho việc khảo sát lý thuyết của bộ điều khiển PID. Dạng chuẩn, mặc dù phức tạp hơn về mặt toán học, nhưng lại phổ biến hơn trong công nghiệp.

Dạng Laplace của bộ điều khiển PID

Đôi khi cách viết điều khiển PID dưới dạng biến đổi Laplace lại rất thuận tiện:

G ( s ) = K p + K i s + K d s = K d s 2 + K p s + K i s {\displaystyle G(s)=K_{p}+{\frac {K_{i}}{s}}+K_{d}{s}={\frac {K_{d}{s^{2}}+K_{p}{s}+K_{i}}{s}}}

Ta vừa có bộ điều khiển PID được viết dưới dạng Laplace và hàm truyền của hệ điều khiển khiến cho việc xác định hàm truyền vòng kín hệ thống một cách dễ dàng.

Dạng nối tiếp/tương hỗ

Một dạng biểu diễn khác của bộ điều khiển PID là dạng nối tiếp, hay dạng tương hỗ

G ( s ) = K c ( τ i s + 1 ) τ i s ( τ d s + 1 ) {\displaystyle G(s)=K_{c}{\frac {(\tau _{i}{s}+1)}{\tau _{i}{s}}}(\tau _{d}{s}+1)}

trong đó các thông số quan hệ với các thông số của dạng chuẩn qua

K p = K c ⋅ α {\displaystyle K_{p}=K_{c}\cdot \alpha } , T i = τ i ⋅ α {\displaystyle T_{i}=\tau _{i}\cdot \alpha } , và T d = τ d α {\displaystyle T_{d}={\frac {\tau _{d}}{\alpha }}}

với

α = 1 + τ d τ i {\displaystyle \alpha =1+{\frac {\tau _{d}}{\tau _{i}}}} .

Dạng này về cơ bản bao gồm bộ điều khiển PD và PI ghép nối tiếp với nhau, và nó giúp cho các bộ điều khiển đời đầu (analog) dễ dàng xây dựng hơn. Khi các bộ điều khiển đời sau được số hóa, nhiều kế thừa sau đó sử dụng dạng tương hỗ.

Thực hiện rời rạc hóa

Các phân tích về thiết kế một bộ điều khiển PID kỹ thuật số trên một Vi điều khiển (MCU) hoặc thiết bị FPGA yêu cầu dạng chuẩn của bộ điều khiển PID phải được rời rạc hóa [12]. Vi phân bậc một được xác định bằng sai phân hữu hạn lùi. Khâu tích phân được rời rạc hóa, với thời gian lấy mẫu Δ t {\displaystyle \Delta t} ,như sau,

∫ 0 t k e ( τ ) d τ = ∑ i = 1 k e ( t i ) Δ t {\displaystyle \int _{0}^{t_{k}}{e(\tau )}\,{d\tau }=\sum _{i=1}^{k}e(t_{i})\Delta t}

Khâu vi phân được xác định bởi,

d e ( t k ) d t = e ( t k ) − e ( t k − 1 ) Δ t {\displaystyle {\dfrac {de(t_{k})}{dt}}={\dfrac {e(t_{k})-e(t_{k-1})}{\Delta t}}}

Do đó, một giải thuật vận tốc cho việc thực thi bộ điều khiển PID rời rạc trên một MCU đạt được bằng cách đạo hàm u ( t ) {\displaystyle u(t)} , sử dụng các số xác định từ đạo hàm bậc một và đạo hàm bậc hai, tìm ra u ( t k ) {\displaystyle u(t_{k})} cuối cùng ta được:

u ( t k ) = u ( t k − 1 ) + K p [ ( 1 + Δ t T i + T d Δ t ) e ( t k ) + ( − 1 − 2 T d Δ t ) e ( t k − 1 ) + T d Δ t e ( t k − 2 ) ] {\displaystyle u(t_{k})=u(t_{k-1})+K_{p}\left[\left(1+{\dfrac {\Delta t}{T_{i}}}+{\dfrac {T_{d}}{\Delta t}}\right)e(t_{k})+\left(-1-{\dfrac {2T_{d}}{\Delta t}}\right)e(t_{k-1})+{\dfrac {T_{d}}{\Delta t}}e(t_{k-2})\right]}

Mã chương trình mẫu

Sau đây là một chương trình vòng lặp đơn giản thực hiện giải thuật PID dưới dạng 'lý tưởng, song song':

previous_error = 0 integral = 0 start: error = setpoint - actual_position integral = integral + (error*dt) derivative = (error - previous_error)/dt output = (Kp*error) + (Ki*integral) + (Kd*derivative) previous_error = error wait(dt) goto start

Tài liệu tham khảo

WikiPedia: Bộ_điều_khiển_PID http://asl.epfl.ch/research/projects/VtolIndoorFly... http://www.building-automation-consultants.com/bui... http://igor.chudov.com/manuals/Servo-Tuning/PID-wi... http://www.controleng.com/article/CA307745.html http://www.controlguru.com/pages/table.html http://www.elecdesign.com/Articles/ArticleID/6131/... http://www.embedded.com/story/OEG20020726S0044 http://books.google.com/books?id=1gfKkqB_fTcC&pg=P... http://books.google.com/books?id=VD_b81J3yFoC&pg=P... http://books.google.com/books?id=VD_b81J3yFoC&pg=P...